const express = require("express");
const router = express.Router();
const orderController = require("../controllers/orderController");

/**
 * @route GET /api/orders
 * @description 获取订单列表（支持分页、筛选：用户ID、订单状态、支付状态、时间范围）
 * @access Public
 */
router.get("/", orderController.getAllOrders);

/**
 * @route GET /api/orders/:id
 * @description 获取单个订单详情（联表返回：用户信息、订单项+产品信息）
 * @access Public
 */
router.get("/:id", orderController.getOrderById);

/**
 * @route POST /api/orders
 * @description 创建新订单（含订单项批量创建，事务保证数据一致性）
 * @access Public
 */
router.post("/", orderController.createOrder);

/**
 * @route PUT /api/orders/:id
 * @description 更新订单信息（仅允许更新状态、收货地址等非关键字段）
 * @access Public
 */
router.put("/:id", orderController.updateOrder);

/**
 * @route DELETE /api/orders/:id
 * @description 删除订单（级联删除关联的订单项，事务保证）
 * @access Public
 */
router.delete("/:id", orderController.deleteOrder);

router.get("/count/:userId", orderController.getUserOrderCount);

module.exports = router;
